Software companies typically expend a large amount of resources for maintenance of their computer programs. For example, software companies typically perform a large amount of testing to search for defects in their computer programs. As a result of these efforts, many defects in these software products can be found and repaired prior to distribution of the computer program. However, maintenance of a computer program can be complex due to the interactivity of different portions within a computer program. In general, at least some care is needed when any changes are made to a computer program, as changes in one portion can affect adversely other portions of the computer program. Therefore, maintenance tasks for a computer program typically require a significant amount of resources not only to discover portions of the computer program requiring some modification, but also to perform additional testing to ensure that other portions of the computer program are unaffected by any changes in the modified portion of the computer program.
Unfortunately, there is generally no way for a software company to determine whether the particular portion of a computer program selected for maintenance is a portion that the customer would have selected for maintenance. As a result, software companies typically expend considerable resources performing maintenance for portions of a computer program which are either not used or infrequently used by many customers. Therefore, there exists a need for managing maintenance of computer programs based on user input.